// const fs = require('fs')

// fs.readFile('./demo.txt', 'utf8', (err, data) => {
//     if (err) throw err
//     console.log(data);

// })

// const fs = require('fs').promises
// fs.readFile('./demo.txt', 'utf8').then(data => {
//     console.log(data);

// }).catch(err => {
//     console.log(err);

// })
// const fun1 = (fn, ...args) => new Promise((resolve, reject) => {
//     fn(...args, (err, data) => {
//         if (err) reject(err)
//         resolve(data)
//     })
// })

// const promisify = fn => fun1

const promisify = fn => (...args) => new Promise((resolve, reject) => {
    fn(...args, (err, data) => {
        if (err) reject(err)
        resolve(data)
    })
})

const fs = require('fs')
const read = promisify(fs.readFile)
read('./demo.txt', 'utf8').then(data => {
    console.log(data);

})